1. Technical Field of the Invention
The present invention relates to system bus architectures for cellular telephones, and more particularly, to a multi-level interface for interconnecting a system bus line with application programs located internally or externally of a cellular telephone.
2. Description of Related Art
A system bus on future cellular telephones must provide wider capabilities than are available on existing cellular telephones. Currently, the system bus supports accessories like vehicle adaptors, battery chargers and portable hands free units. These accessories may be either dumb or intelligent. Dumb accessories are hardware controlled and communicate with the telephone through discrete signals on the system bus. Intelligent accessories contain a microprocessor and communicate to the telephone software over the system bus serial port using a defined interface protocol. Future system buses in addition to supporting these accessories will be required to support a serial communications interface to a computer, such as a PC, laptop, or PDA.
Application programs (APs) running on an external computer communicate with the cellular telephone over the system bus to an application program interface (API) residing in the telephone. An example of this type of communication over the system bus is a test AP that runs on a computer and interfaces to a test API residing in the cellular telephone. The test AP, through a menu driven display on the computer, enables an operator to initiate various tests on the cellular telephone and then display the test results. The test API performs the commanded test on the telephone and sends the results to the test AP. This example illustrates how an application communicates over the cellular telephone system bus. There is a potential for many different types of applications to use this interface for communication. The application programs will be developed by a variety of different vendors, as well as, providers of cellular telephones.
Thus, a need has arisen for a new type of bus system interface that enables a variety of software developers of APs and APIs to create products that are easily interfaced with the system bus of a cellular telephone. Thus, an interface architecture providing a standard definition for the communication interface between the application and the hardware interface of the system bus would be greatly beneficial.
The present invention overcomes the foregoing and other problems with an apparatus for interconnecting hardware of an electronic device with application programs for controlling the electronic device. The apparatus includes a first layer for interfacing the apparatus to the hardware of an electronic device. The layer independently controls the hardware interface protocols necessary for interconnecting the apparatus to the hardware of an electronic device. The layer further includes a plurality of independent objects. Each of the independent objects is able to interface the apparatus to a particular hardware component.
The apparatus includes a second layer for interfacing the apparatus to application programs for controlling the electronic device. The application programs may be located internally or externally of the electronic device. The layer independently controls the software protocols necessary for interconnecting the apparatus with the application programs. The layer further includes a plurality of independent objects for controlling an interface between the electronic device and a particular application program.
A routing layer routes data between the first and second layers in four different manners. The router may route data from first layer to the second layer, from the second layer to the first layer, between objects in the first layer, or between objects in the second layer. In this manner, the interface enables interconnection between a software application program and the system hardware in a manner such that the hardware interconnection protocols and the software interconnection protocols operate independently of each other through the separate layers of the interface.